/**
 * Copyright (c) 2009  Collaborative Development Group, C.S. Dept., University of Bari
 *
 * All rights reserved. This program and the accompanying materials are made available under
 * the terms of the Eclipse Public License v1.0  which accompanies this distribution, and is 
 * available at http://www.eclipse.org/legal/epl-v10.html
 */
package it.uniba.di.cdg.jtalk.ui.login;

import it.uniba.di.cdg.penelope.ui.IPresentationModel;
import it.uniba.di.cdg.penelope.ui.annotation.PresentationModel;

import com.google.inject.ImplementedBy;

/**
 * Presentation Model for {@link LoginView}: it maps the actual session data for the on-the-screen widgets.
 */
@PresentationModel( "login" )
@ImplementedBy( LoginPresentationModel.class )
public interface ILoginPresentationModel extends IPresentationModel {
	
	public static final String USER_ID_PROPERTY = "userId";
	public static final String PASSWORD_PROPERTY = "password";
	public static final String REMEMBER_PASSWORD_PROPERTY = "rememberPassword";
	public static final String AUTOMATIC_LOGIN_PROPERTY = "automaticLogin";
	
	/**
	 * @return the userId
	 */
	String getUserId();

	/**
	 * @param userId the userId to set
	 */
	void setUserId( String userId );

	/**
	 * @return the password
	 */
	String getPassword();

	/**
	 * @param password the password to set
	 */
	void setPassword( String password );

	/**
	 * @return the rememberPassword
	 */
	Boolean isRememberPassword();

	/**
	 * @param rememberPassword the rememberPassword to set
	 */
	void setRememberPassword( Boolean rememberPassword );

	/**
	 * @return the automaticLogin
	 */
	Boolean isAutomaticLogin();

	/**
	 * @param automaticLogin the automaticLogin to set
	 */
	void setAutomaticLogin( Boolean automaticLogin );
}